import 'package:get/get.dart';
import 'package:xmshop/app/other/future_demo/future_demo_page.dart';

import '../modules/address/addressAdd/bindings/address_add_binding.dart';
import '../modules/address/addressAdd/views/address_add_view.dart';
import '../modules/address/addressEdit/bindings/address_edit_binding.dart';
import '../modules/address/addressEdit/views/address_edit_view.dart';
import '../modules/address/addressList/bindings/address_list_binding.dart';
import '../modules/address/addressList/views/address_list_view.dart';
import '../modules/cart/views/cart_view.dart';
import '../modules/checkout/bindings/checkout_binding.dart';
import '../modules/checkout/views/checkout_view.dart';
import '../modules/pass/codeLoginStepOne/bindings/code_login_step_one_binding.dart';
import '../modules/pass/codeLoginStepOne/bindings/code_login_step_one_binding.dart';
import '../modules/pass/codeLoginStepOne/views/code_login_step_one_view.dart';
import '../modules/pass/codeLoginStepOne/views/code_login_step_one_view.dart';
import '../modules/pass/codeLoginStepTwo/bindings/code_login_step_two_binding.dart';
import '../modules/pass/codeLoginStepTwo/views/code_login_step_two_view.dart';
import '../modules/pass/onStepLogin/bindings/on_step_login_binding.dart';
import '../modules/pass/onStepLogin/views/on_step_login_view.dart';
import '../modules/pass/passLogin/bindings/pass_login_binding.dart';
import '../modules/pass/passLogin/views/pass_login_view.dart';
import '../modules/pass/registerStepOne/bindings/register_step_one_binding.dart';
import '../modules/pass/registerStepOne/views/register_step_one_view.dart';
import '../modules/pass/registerStepThree/bindings/register_step_three_binding.dart';
import '../modules/pass/registerStepThree/views/register_step_three_view.dart';
import '../modules/pass/registerStepTwo/bindings/register_step_two_binding.dart';
import '../modules/pass/registerStepTwo/views/register_step_two_view.dart';
import '../modules/productContent/bindings/product_content_binding.dart';
import '../modules/productContent/bindings/product_content_binding.dart';
import '../modules/productContent/views/product_content_view.dart';
import '../modules/productContent/views/product_content_view.dart';
import '../modules/productList/bindings/product_list_binding.dart';
import '../modules/productList/views/product_list_view.dart';
import '../modules/search/bindings/search_binding.dart';
import '../modules/search/views/search_view.dart';
import '../modules/tabs/bindings/tabs_binding.dart';
import '../modules/tabs/views/tabs_view.dart';
import '../other/biometrics/biometrics.dart';
import '../other/localization/localization.dart';
import '../other/socket/socket_page.dart';
import '../other/future_demo/future_builder_demo.dart';
import '../other/future_demo/future_builder_demo.dart';
import '../other/future_demo/stream_builder_demo.dart';
import '../other/future_demo/stream_builder_game_demo.dart';
import '../other/date_time/date_time_page.dart';
import '../other/dio_demo/dio_demo_page.dart';
import '../other/dio_demo/dio_demo_base.dart';
import '../other/dio_demo/dio_demo_builder.dart';
import '../other/dio_demo/dio_demo_load_more.dart';
import '../other/dio_demo/dio_demo_news_detail.dart';

part 'app_routes.dart';

class AppPages {
  AppPages._();

  static const INITIAL = Routes.TABS;

  static final routes = [
    GetPage(
        name: _Paths.TABS,
        page: () => const TabsView(),
        binding: TabsBinding()),
    GetPage(name: _Paths.Localization, page: () => const LocalizationPage()),
    GetPage(name: _Paths.Socket, page: () => const SocketPage()),
    GetPage(name: _Paths.Biometrics, page: () => const Biometrics()),
    GetPage(name: _Paths.FutureDemo, page: () => const FutureDemoPage()),
    GetPage(
        name: _Paths.FutureBuilderDemo, page: () => const FutureBuilderPage()),
    GetPage(
        name: _Paths.StreamBuilderDemo, page: () => const StreamBuilderPage()),
    GetPage(
        name: _Paths.StreamBuilderGame,
        page: () => const StreamBuilderGameDemo()),
    GetPage(name: _Paths.DateTime, page: () => const DateTimePage()),
    GetPage(name: _Paths.DioDemo, page: () => const DioDemoPage()),
    GetPage(name: _Paths.DioDemoBase, page: () => const DioDemoBase()),
    GetPage(name: _Paths.DioDemoBuilder, page: () => const DioDemoBuilder()),
    GetPage(name: _Paths.DioDemoLoadMore, page: () => const DioDemoLoadMore()),
    GetPage(
        name: _Paths.DioDemoNewsDetail, page: () => const DioDemoNewsDetail()),
    GetPage(
        name: _Paths.PRODUCT_LIST,
        page: () => const ProductListView(),
        binding: ProductListBinding()),
    GetPage(
      name: _Paths.SEARCH,
      page: () => const SearchView(),
      binding: SearchBinding(),
    ),
    GetPage(
        name: _Paths.PRODUCT_CONTENT,
        page: () => const ProductContentView(),
        binding: ProductContentBinding()),
    GetPage(name: _Paths.CART, page: () => CartView()),
    GetPage(
      name: _Paths.CODE_LOGIN_STEP_ONE,
      page: () => const CodeLoginStepOneView(),
      binding: CodeLoginStepOneBinding(),
      children: [
        GetPage(
          name: _Paths.CODE_LOGIN_STEP_ONE,
          page: () => const CodeLoginStepOneView(),
          binding: CodeLoginStepOneBinding(),
        ),
      ],
    ),
    GetPage(
      name: _Paths.CODE_LOGIN_STEP_TWO,
      page: () => const CodeLoginStepTwoView(),
      binding: CodeLoginStepTwoBinding(),
    ),
    GetPage(
      name: _Paths.ON_STEP_LOGIN,
      page: () => const OnStepLoginView(),
      binding: OnStepLoginBinding(),
    ),
    GetPage(
      name: _Paths.PASS_LOGIN,
      page: () => const PassLoginView(),
      binding: PassLoginBinding(),
    ),
    GetPage(
      name: _Paths.REGISTER_STEP_ONE,
      page: () => const RegisterStepOneView(),
      binding: RegisterStepOneBinding(),
    ),
    GetPage(
      name: _Paths.REGISTER_STEP_TWO,
      page: () => const RegisterStepTwoView(),
      binding: RegisterStepTwoBinding(),
    ),
    GetPage(
      name: _Paths.REGISTER_STEP_THREE,
      page: () => const RegisterStepThreeView(),
      binding: RegisterStepThreeBinding(),
    ),
    GetPage(
      name: _Paths.CHECKOUT,
      page: () => const CheckoutView(),
      binding: CheckoutBinding(),
    ),
    GetPage(
      name: _Paths.ADDRESS_ADD,
      page: () => const AddressAddView(),
      binding: AddressAddBinding(),
    ),
    GetPage(
      name: _Paths.ADDRESS_EDIT,
      page: () => const AddressEditView(),
      binding: AddressEditBinding(),
    ),
    GetPage(
      name: _Paths.ADDRESS_LIST,
      page: () => const AddressListView(),
      binding: AddressListBinding(),
    ),
  ];
}
